bitkeeper revision 1.1713.1.6 (42ae0d7cI1fdGe88s6RyEx8d0oy2wg)
authorarun.sharma@intel.com[kaf24] <arun.sharma@intel.com[kaf24]>
Mon, 13 Jun 2005 22:49:32 +0000 (22:49 +0000)
committerarun.sharma@intel.com[kaf24] <arun.sharma@intel.com[kaf24]>
Mon, 13 Jun 2005 22:49:32 +0000 (22:49 +0000)
[PATCH] x64-vmxassist-fix2.patch

Fix 64 bit build. Tested the binary built on a 64 bit platform on a 32 bit platform.

Signed-off-by: Arun Sharma <arun.sharma@intel.com>
tools/firmware/vmxassist/Makefile
tools/firmware/vmxassist/head.S
tools/firmware/vmxassist/trap.S

index 545acdf743aab90fbb2c981ac1acb8da879a4856..a9b142363c49431a09f651ab11773f6e8903f3fd 100644 (file)
@@ -18,6 +18,9 @@
 # Place - Suite 330, Boston, MA 02111-1307 USA.
 #
 
+XEN_ROOT = ../../..
+include $(XEN_ROOT)/tools/Rules.mk
+
 # The emulator code lives in ROM space
 TEXTADDR=0x000D0000
 DEFINES=-DDEBUG -DTEXTADDR=${TEXTADDR}
@@ -32,19 +35,24 @@ CPP=cpp -P
 OBJCOPY=objcopy -p -O binary -R .note -R .comment -R .bss -S --gap-fill=0
 CFLAGS=${DEFINES} -I. $(XENINC) -Wall -fno-builtin -O2 -msoft-float
 
+ifeq ($(XEN_COMPILE_ARCH),x86_64)
+CFLAGS  += -m32 -march=i686
+LDFLAGS += -m elf_i386
+endif
+
 OBJECTS = head.o trap.o vm86.o setup.o util.o
 
 all: vmxloader
 
 vmxloader: roms.h vmxloader.c
-       ${CC} ${DEFINES} -c vmxloader.c
-       $(CC) -o vmxloader.tmp -nostdlib -Wl,-N -Wl,-Ttext -Wl,0x100000 vmxloader.o
+       ${CC} ${CFLAGS} ${DEFINES} -c vmxloader.c
+       $(CC) -o vmxloader.tmp -m32 -nostdlib -Wl,-N -Wl,-Ttext -Wl,0x100000 vmxloader.o
        objcopy --change-addresses=0xC0000000 vmxloader.tmp vmxloader
        rm -f vmxloader.tmp
 
 vmxassist.bin: vmxassist.ld ${OBJECTS}
        ${CPP} ${DEFINES} vmxassist.ld > vmxassist.tmp
-       ${LD} -o vmxassist -nostdlib --fatal-warnings -N -T vmxassist.tmp ${OBJECTS}
+       ${LD} -o vmxassist ${LDFLAGS} -nostdlib --fatal-warnings -N -T vmxassist.tmp ${OBJECTS}
        nm -n vmxassist > vmxassist.sym
        ${OBJCOPY} vmxassist vmxassist.tmp
        dd if=vmxassist.tmp of=vmxassist.bin ibs=512 conv=sync
index a657e6474000110af35d57fce94c0096411e7591..1541a1c8e9dc9fbd34f7c19fa9020c990c160df2 100644 (file)
@@ -106,6 +106,7 @@ rom_gdtr:
  * main and setup our own environment.
  */
        .globl  _start
+       .code32
 _start:
        cli
 
index a469f68fc87c5d9d1742970218f21b1019b70640..e4294e88c27a753a6f93bbf591071615deee9c85 100644 (file)
@@ -20,7 +20,6 @@
 #include "machine.h"
 #include "offsets.h"
 
-
 /*
  * All processor exception/faults/interrupts end up here.
  *
@@ -43,6 +42,7 @@
        .endm
 
        .section .rodata
+       .code32
        .align  4
        .global trap_handlers
 trap_handlers:
@@ -96,6 +96,7 @@ trap_handlers:
        TRAP_HANDLER    47, 0   /* irq 15 */
 
        .text
+       .code32
        .align  16
 common_trap:                           /* common trap handler */
        pushl   %gs